package io_0929;

import java.io.*;
import java.util.Scanner;

/**
 *  小程序练习:
 *   进行普通文件的复制
 */
public class MiniProgram2 {
    public static void main(String[] args) {
        // 1. 先输入要复制哪个文件(源文件) 以及 把这个文件复制到哪里去(目标文件)
        Scanner scanner = new Scanner(System.in);

        System.out.println("请输入源文件路径: ");
        // srcFile 形如: d:/text.txt
        File srcFile = new File(scanner.next());
        while (!srcFile.isFile()) {
            // 不是普通文件
            System.out.println("输入的源文件有误!");
            System.out.println("请重新输入: ");
            srcFile = new File(scanner.next());
        }

        System.out.println("请输入目标文件路径: ");
        // destFile 形如: d:/test2.txt
        File destFile = new File(scanner.next());
        while (!destFile.getParentFile().isDirectory()) {
            // 不是普通文件
            System.out.println("输入的目标文件有误!");
            System.out.println("请重新输入: ");
            destFile = new File(scanner.next());
        }


        // 2. 打开源文件 按照字节流读取内容 依次写入到目标文件
        try(InputStream inputStream = new FileInputStream(srcFile);
        OutputStream outputStream = new FileOutputStream(destFile)) {
            // 读 -> 写
            while(true) {
                int ret = inputStream.read();
                if(ret == -1) break;
                outputStream.write(ret);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }

        System.out.println("复制完成!");
    }
}
